package com.itcam.phaselist.list_;

import java.util.ArrayList;
import java.util.List;

public class ListMethod {
    public static void main(String[] args) {
        List list = new ArrayList();
        list.add("张三丰");
        list.add("张无忌");
        list.add("周芷若");
        list.add("赵敏");
        System.out.println("before list = " + list);

        // void add(int index, Object ele):在index(从0开始)位置插入ele元素
        list.add(0, "谢逊");
        System.out.println("after list = " + list);

        // boolean addAll(int index, Collection eles):从index位置开始将eles中的所有元素添加进来
        List list2 = new ArrayList();
        list2.add("孙悟空");
        list2.add("猪悟能");
        list2.add("沙悟净");
        list.addAll(1, list2);
        System.out.println("addAll list = " + list);

        // Object get(int index):获取指定index位置的元素
        System.out.println(list.get(0));

        // int indexOf(Object obj):返回obj在集合中首次出现的位置
        System.out.println("indexOf: " + list.indexOf("谢逊"));

        list.add("张三丰");
        // int lastIndexOf(Object obj):返回obj在当前集合中末次出现的位置
        System.out.println("lastIndexOf: " + list.lastIndexOf("张三丰"));

        // Object remove(int index):移除指定index位置的元素，并返回此元素
        System.out.println(list.remove(8));
        System.out.println("remove list = " + list);

        // Object set(int index, Object ele):设置指定index位置的元素为ele, 相当于是替换
        list.set(0, "叶灵芸");
        System.out.println("set list = " + list);
        // List subList(int fromIndex, int toIndex):返回从fromIndex到toIndex位置的子集合
        // 注意返回的子集合fromIndex <= subList < toIndex
        List returnList = list.subList(1, 4);
        System.out.println("returnList list = " + returnList);
    }
}
